bitkeeper revision 1.1236.1.35 (4221cdcevFIhlA_vszZmPBjpl9nLjQ)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Sun, 27 Feb 2005 13:40:30 +0000 (13:40 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Sun, 27 Feb 2005 13:40:30 +0000 (13:40 +0000)
Set pagetable bits correctly (for Linux) in DOM0 builder.
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/domain_build.c

index 28bae695451edff3adae8cde0f05b3161bf0d547..75130fe1c607bc054b9a916bcefa92ec37a26c4c 100644 (file)
@@ -32,9 +32,11 @@ integer_param("dom0_mem", opt_dom0_mem);
 /* Allow ring-3 access in long mode as guest cannot use ring 1. */
 #define L1_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_USER)
 #endif
-#define L2_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_USER)
-#define L3_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_USER)
-#define L4_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_USER)
+/* Don't change these: Linux expects just these bits to be set. */
+/* (And that includes the bogus _PAGE_DIRTY!) */
+#define L2_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_DIRTY|_PAGE_USER)
+#define L3_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_DIRTY|_PAGE_USER)
+#define L4_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_DIRTY|_PAGE_USER)
 
 #define round_pgup(_p)    (((_p)+(PAGE_SIZE-1))&PAGE_MASK)
 #define round_pgdown(_p)  ((_p)&PAGE_MASK)